/**
 * 收藏相关API接口
 */

import request from '../utils/request.js'
import { getCurrentUserId } from '../utils/userAuth.js'

export const favoriteApi = {
  /**
   * 获取用户收藏商品列表
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码（默认1）
   * @param {number} params.size - 每页大小（默认10）
   */
  getUserFavorites(params = {}) {
    const userId = getCurrentUserId()
    
    const queryParams = {
      userId,
      page: 1,
      size: 10,
      ...params
    }
    
    return request.get('/user/users/favorites', queryParams)
  },

  /**
   * 添加商品到收藏
   * @param {number} productId - 商品ID
   */
  addToFavorites(productId) {
    const userId = getCurrentUserId()
    
    if (!productId) {
      throw new Error('商品ID不能为空')
    }
    
    return request.post('/user/users/favorites/add', {}, {
      params: {
        userId,
        productId
      }
    })
  },

  /**
   * 取消收藏商品
   * @param {number} productId - 商品ID
   */
  removeFromFavorites(productId) {
    const userId = getCurrentUserId()
    
    if (!productId) {
      throw new Error('商品ID不能为空')
    }
    
    return request.delete('/user/users/favorites/remove', {
      params: {
        userId,
        productId
      }
    })
  },

  /**
   * 检查商品是否已收藏
   * @param {number} productId - 商品ID
   */
  checkFavoriteStatus(productId) {
    const userId = getCurrentUserId()
    
    if (!productId) {
      throw new Error('商品ID不能为空')
    }
    
    return request.get('/user/users/favorites/check', {
      userId,
      productId
    })
  }
}

export default favoriteApi